/*
 * 版权所有 (C) 2015 知启蒙(ZHIQIM) 保留所有权利。[遇见知启蒙，邂逅框架梦]
 * 
 * https://zhiqim.org/project/zhiqim_framework/zhiqim_kernel.htm
 *
 * Zhiqim Kernel is licensed under Mulan PSL v2.
 * You can use this software according to the terms and conditions of the Mulan PSL v2.
 * You may obtain a copy of Mulan PSL v2 at:
 *          http://license.coscl.org.cn/MulanPSL2
 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
 * See the Mulan PSL v2 for more details.
 */
package org.zhiqim.kernel.xml;

import org.w3c.dom.Node;

/**
 * Xml解析器接口
 *
 * @version v1.1.2 @author zouzhigang 2015-8-21 新建与整理
 */
public interface XmlParser
{
    /**
     * 设置Xml解析主类
     * 
     * @param xmlMain XML解析主类
     */
    XmlParser set(Xml xmlMain);
    
    /**
     * 解析对象成XML字符串
     * 
     * @param obj       本字段对象
     * @param tagName   本字段标志
     * @param tagLevel  本字段级别
     * @return          XML字符串
     */
    String toStringInner(Object obj, String tagName, int tagLevel);
    
    /**
     * 解析XML字符串成对象
     * 
     * @param xml XML字符串
     * @param clazz 对象类结构
     * @return 返回对象
     */
    Object toObjectInner(Node node, Class<?> clazz, Class<?> generics);
}
